<?php

use think\admin\extend\PhinxExtend;
use think\migration\Migrator;

@set_time_limit(0);
@ini_set('memory_limit', -1);

class InstallAuto extends Migrator
{

    /**
     * 创建数据库
     */
    public function change()
    {
        $this->_create_auto_field();
        $this->_create_auto_table();
    }

    /**
     * 创建数据对象
     * @class AutoField
     * @table auto_field
     * @return void
     */
    private function _create_auto_field()
    {
        // 创建数据表对象
        $table = $this->table('auto_field', [
            'engine' => 'InnoDB',
            'collation' => 'utf8mb4_general_ci',
            'comment' => '',
        ]);
        // 创建或更新数据表
        PhinxExtend::upgrade($table, [
            ['table_id', 'integer', ['limit' => 11, 'default' => 0, 'null' => false, 'comment' => '控制器id']],
            ['name', 'string', ['limit' => 50, 'default' => '', 'null' => true, 'comment' => '字段名']],
            ['title', 'string', ['limit' => 50, 'default' => NULL, 'null' => true, 'comment' => '字段名称']],
            ['type', 'string', ['limit' => 20, 'default' => NULL, 'null' => true, 'comment' => '字段类型']],
            ['note', 'string', ['limit' => 50, 'default' => NULL, 'null' => true, 'comment' => '备注']],
            ['list', 'tinyinteger', ['limit' => 1, 'default' => 1, 'null' => true, 'comment' => '列表']],
            ['search', 'tinyinteger', ['limit' => 1, 'default' => 0, 'null' => true, 'comment' => '搜索']],
            ['sort', 'integer', ['limit' => 11, 'default' => 0, 'null' => false, 'comment' => '排序']],
        ], [

        ], false);
    }

    /**
     * 创建数据对象
     * @class AutoTable
     * @table auto_table
     * @return void
     */
    private function _create_auto_table()
    {
        // 创建数据表对象
        $table = $this->table('auto_table', [
            'engine' => 'InnoDB',
            'collation' => 'utf8mb4_general_ci',
            'comment' => '',
        ]);
        // 创建或更新数据表
        PhinxExtend::upgrade($table, [
            ['app', 'string', ['limit' => 50, 'default' => NULL, 'null' => false, 'comment' => '']],
            ['name', 'string', ['limit' => 50, 'default' => NULL, 'null' => false, 'comment' => '表名']],
            ['title', 'string', ['limit' => 50, 'default' => NULL, 'null' => false, 'comment' => '表标题']],
            ['edit', 'tinyinteger', ['limit' => 1, 'default' => 1, 'null' => false, 'comment' => '编辑']],
            ['del', 'tinyinteger', ['limit' => 1, 'default' => 1, 'null' => false, 'comment' => '删除']],
            ['sort', 'tinyinteger', ['limit' => 1, 'default' => 0, 'null' => false, 'comment' => '排序']],
        ], [

        ], false);
    }

}
